// 用接口interface定义对象

interface list {
  id: number;
  name: string;
  // [x: string]: any;
  age?: number; // 可选属性 `?`，表示这个属性可以有也可以没有
}

interface Result {
  data: list[];
}

function render(result: Result) {
  result.data.forEach((value) => {
    console.log(value.id, value.name);
    // 假设：我们有一个新的需求需要判断一下 value 中是不是有一个新的字段，如果有的话就把它打印出来
    if(value.age){
      console.log(value.age);
    }
  });
}

// age 没有定义但是在上面又有一个`age`的判断，这个时候我们需要使用可选属性`?`
let result = {
  data: [
    {id: 1, name: 'A', sex: 'male'},
    {id: 2, name: 'B', age: 10}
  ]
}

render(result); // 如果不添加可选属性`?`，这里是报错`缺少属性 "age"，但类型 "list" 中需要该属性`。

export {};
